﻿using System;
using System.Collections.Generic;
using Character;
using UnityEngine;
using Utility;

namespace H
{
	// Token: 0x02000228 RID: 552
	public class H_Members
	{
		// Token: 0x06000EDA RID: 3802 RVA: 0x0005CF48 File Offset: 0x0005B148
		public H_Members(H_Scene h_scene)
		{
			GameObject gameObject = new GameObject("H_Pos");
			gameObject.transform.position = Vector3.zero;
			gameObject.transform.rotation = Quaternion.identity;
			gameObject.transform.localScale = Vector3.one;
			this.visitorLookPos = new GameObject("VisitorLoopPos");
			this.visitorLookPos.transform.SetParent(gameObject.transform, false);
			this.visitorLookPos.transform.localPosition = new Vector3(0f, 1f, 0f);
			this.h_scene = h_scene;
			this.Transform = gameObject.transform;
			this.stateMgr = new H_StateManager(this);
			this.param = new H_Parameter();
			this.param.mapName = h_scene.map.name;
			this.mapIK = h_scene.CreateMapIK();
			this.mapIK.transform.SetParent(gameObject.transform, false);
		}

		// Token: 0x1700017D RID: 381
		// (get) Token: 0x06000EDB RID: 3803 RVA: 0x0005D0C8 File Offset: 0x0005B2C8
		// (set) Token: 0x06000EDC RID: 3804 RVA: 0x0005D0D0 File Offset: 0x0005B2D0
		public H_Scene h_scene { get; private set; }

		// Token: 0x1700017E RID: 382
		// (get) Token: 0x06000EDD RID: 3805 RVA: 0x0005D0DC File Offset: 0x0005B2DC
		public H_StateManager StateMgr
		{
			get
			{
				return this.stateMgr;
			}
		}

		// Token: 0x1700017F RID: 383
		// (get) Token: 0x06000EDE RID: 3806 RVA: 0x0005D0E4 File Offset: 0x0005B2E4
		// (set) Token: 0x06000EDF RID: 3807 RVA: 0x0005D0EC File Offset: 0x0005B2EC
		public float FemaleGageVal { get; set; }

		// Token: 0x17000180 RID: 384
		// (get) Token: 0x06000EE0 RID: 3808 RVA: 0x0005D0F8 File Offset: 0x0005B2F8
		// (set) Token: 0x06000EE1 RID: 3809 RVA: 0x0005D100 File Offset: 0x0005B300
		public float MaleGageVal { get; set; }

		// Token: 0x17000181 RID: 385
		// (get) Token: 0x06000EE2 RID: 3810 RVA: 0x0005D10C File Offset: 0x0005B30C
		// (set) Token: 0x06000EE3 RID: 3811 RVA: 0x0005D114 File Offset: 0x0005B314
		public H_StyleData StyleData { get; private set; }

		// Token: 0x17000182 RID: 386
		// (get) Token: 0x06000EE4 RID: 3812 RVA: 0x0005D120 File Offset: 0x0005B320
		// (set) Token: 0x06000EE5 RID: 3813 RVA: 0x0005D128 File Offset: 0x0005B328
		public H_PoseData PoseData { get; private set; }

		// Token: 0x17000183 RID: 387
		// (get) Token: 0x06000EE6 RID: 3814 RVA: 0x0005D134 File Offset: 0x0005B334
		// (set) Token: 0x06000EE7 RID: 3815 RVA: 0x0005D13C File Offset: 0x0005B33C
		public Transform Transform { get; private set; }

		// Token: 0x17000184 RID: 388
		// (get) Token: 0x06000EE8 RID: 3816 RVA: 0x0005D148 File Offset: 0x0005B348
		// (set) Token: 0x06000EE9 RID: 3817 RVA: 0x0005D150 File Offset: 0x0005B350
		public bool EnableTinIK { get; set; }

		// Token: 0x17000185 RID: 389
		// (get) Token: 0x06000EEA RID: 3818 RVA: 0x0005D15C File Offset: 0x0005B35C
		// (set) Token: 0x06000EEB RID: 3819 RVA: 0x0005D164 File Offset: 0x0005B364
		public GameObject visitorLookPos { get; private set; }

		// Token: 0x06000EEC RID: 3820 RVA: 0x0005D170 File Offset: 0x0005B370
		public void Update(bool enableProcess)
		{
			this.SetAnimeParam();
			this.stateMgr.Main();
			for (int i = 0; i < this.voiceLogs.Count; i++)
			{
				this.voiceLogs[i].Update();
			}
			this.Update_EyeLook();
			this.Update_Female();
			this.Update_Pos();
			for (int j = 0; j < this.males.Count; j++)
			{
				this.males[j].ik.TinEnable = this.EnableTinIK;
				this.males[j].ik.MouthEnable = this.EnableTinIK;
			}
		}

		// Token: 0x06000EED RID: 3821 RVA: 0x0005D224 File Offset: 0x0005B424
		public void LateUpdate()
		{
			for (int i = 0; i < this.females.Count; i++)
			{
				this.females[i].ik.FBIK.UpdateSolverExternal();
			}
			for (int j = 0; j < this.males.Count; j++)
			{
				this.males[j].ik.FBIK.UpdateSolverExternal();
				this.males[j].ik.CalcMouth();
				this.males[j].ik.CalcTin();
			}
			for (int k = 0; k < this.females.Count; k++)
			{
				this.females[k].ik.FBIK.UpdateSolverExternal();
			}
		}

		// Token: 0x06000EEE RID: 3822 RVA: 0x0005D304 File Offset: 0x0005B504
		private void Update_Pos()
		{
			if (this.StyleData != null)
			{
				if (this.StyleData.position == H_StyleData.POSITION.FIVE_RESIST)
				{
					this.posFiveR.pos = this.Transform.position;
					this.posFiveR.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_FLOP)
				{
					this.posFiveF.pos = this.Transform.position;
					this.posFiveF.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_WEAKNESS)
				{
					this.posFiveW.pos = this.Transform.position;
					this.posFiveW.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.SPECIAL)
				{
					this.posSpecial.pos = this.Transform.position;
					this.posSpecial.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.WALL)
				{
					this.posWall.pos = this.Transform.position;
					this.posWall.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.CHAIR)
				{
					this.posChair.pos = this.Transform.position;
					this.posChair.yaw = this.Transform.rotation.eulerAngles.y;
				}
				else
				{
					this.posFloor.pos = this.Transform.position;
					this.posFloor.yaw = this.Transform.rotation.eulerAngles.y;
				}
			}
		}

		// Token: 0x06000EEF RID: 3823 RVA: 0x0005D550 File Offset: 0x0005B750
		private void Update_EyeLook()
		{
			Vector3 facePos = this.males[0].FacePos;
			Vector3 facePos2 = this.females[0].FacePos;
			Vector3 position = this.h_scene.IllCam.transform.position;
			bool flag = this.males[0].MaleShow >= MALE_SHOW.CLOTHING && this.males[0].MaleShow <= MALE_SHOW.ONECOLOR;
			for (int i = 0; i < this.males.Count; i++)
			{
				this.males[i].EyeLook.TargetPos = facePos2;
			}
			Vector3 targetPos = (!flag) ? position : facePos;
			for (int j = 0; j < this.females.Count; j++)
			{
				this.females[j].EyeLook.TargetPos = targetPos;
			}
		}

		// Token: 0x06000EF0 RID: 3824 RVA: 0x0005D64C File Offset: 0x0005B84C
		private void Update_Female()
		{
			for (int i = 0; i < this.females.Count; i++)
			{
				this.Update_Female(this.females[i]);
			}
		}

		// Token: 0x06000EF1 RID: 3825 RVA: 0x0005D688 File Offset: 0x0005B888
		private void Update_Female(Female female)
		{
			this.Update_FemaleFlush(female);
			this.Update_FemaleTear(female);
			this.Update_FemaleSmooth(female);
			this.Update_FemaleNip(female);
		}

		// Token: 0x06000EF2 RID: 3826 RVA: 0x0005D6A8 File Offset: 0x0005B8A8
		private void Update_FemaleFlush(Female female)
		{
			float num = female.FlushRate;
			int num2 = female.personality.xtc_count_vagina + female.personality.xtc_count_anal;
			if (female.personality.weakness || female.personality.ahe)
			{
				num = 1f;
			}
			else if (female.HeroineID == HEROINE.RITSUKO || female.HeroineID == HEROINE.AKIKO)
			{
				if (!female.IsFloped())
				{
					if (num2 == 1)
					{
						num = 0.25f;
					}
					else if (num2 >= 2)
					{
						num = 0.5f;
					}
				}
				else if (num2 > 0)
				{
					num = 0.5f;
				}
			}
			else if (female.HeroineID == HEROINE.YUKIKO)
			{
				if (!female.IsFloped())
				{
					if (num2 == 1)
					{
						num = 0.25f;
					}
					else if (num2 >= 2)
					{
						num = 0.5f;
					}
				}
				else if (num2 > 0)
				{
					num = 0.5f;
				}
			}
			if (this.param.style != null && this.param.style.type != H_StyleData.TYPE.SERVICE)
			{
				num = ((!this.param.hit) ? 0f : 0.3f);
			}
			num = Mathf.Clamp01(num);
			if (num != female.FlushRate)
			{
				female.SetFlush(num, false);
			}
		}

		// Token: 0x06000EF3 RID: 3827 RVA: 0x0005D800 File Offset: 0x0005BA00
		private void Update_FemaleTear(Female female)
		{
			float num = 0f;
			int num2 = female.personality.eja_count_vagina + female.personality.eja_count_anal;
			if (female.HeroineID == HEROINE.RITSUKO)
			{
				if (female.personality.state == Personality.STATE.FIRST)
				{
					num = Mathf.Max(num, 0.33f);
				}
				if (female.personality.IsLostVaginaVirgin() || female.personality.IsLostAnalVirgin())
				{
					num = Mathf.Max(num, 1f);
				}
				if (!female.IsFloped())
				{
					if (num2 == 2)
					{
						num = Mathf.Max(num, 0.33f);
					}
					else if (num2 >= 3)
					{
						num = Mathf.Max(num, 0.66f);
					}
				}
			}
			if (female.HeroineID == HEROINE.AKIKO)
			{
				if (female.personality.IsLostVaginaVirgin() || female.personality.IsLostAnalVirgin())
				{
					num = Mathf.Max(num, 1f);
				}
				if (!female.IsFloped())
				{
					if (num2 == 2)
					{
						num = Mathf.Max(num, 0.33f);
					}
					else if (num2 >= 3)
					{
						num = Mathf.Max(num, 0.66f);
					}
				}
			}
			if (num > female.TearsRate)
			{
				female.SetTear(num, false);
			}
		}

		// Token: 0x06000EF4 RID: 3828 RVA: 0x0005D938 File Offset: 0x0005BB38
		private void Update_FemaleSmooth(Female female)
		{
			float num = 0f;
			int num2 = female.personality.xtc_count_vagina + female.personality.xtc_count_anal;
			if (female.HeroineID == HEROINE.RITSUKO || female.HeroineID == HEROINE.AKIKO)
			{
				if (female.personality.state == Personality.STATE.FIRST)
				{
					num = 0f;
				}
				else if (!female.IsFloped())
				{
					num = ((num2 <= 0) ? 0f : 0.1f);
				}
				else if (num2 > 0)
				{
					num = ((num2 != 1) ? 0.2f : 0.1f);
				}
			}
			else if (female.HeroineID == HEROINE.YUKIKO)
			{
				if (female.personality.state == Personality.STATE.FIRST)
				{
					num = ((num2 <= 0) ? 0f : 0.1f);
				}
				else if (!female.IsFloped())
				{
					num = ((num2 <= 0) ? 0f : 0.1f);
				}
				else if (num2 > 0)
				{
					num = ((num2 != 1) ? 0.2f : 0.1f);
				}
			}
			if (num > female.SkinSmoothAdd)
			{
				female.SetSkinSmoothAdd(num);
			}
		}

		// Token: 0x06000EF5 RID: 3829 RVA: 0x0005DA70 File Offset: 0x0005BC70
		private void Update_FemaleNip(Female female)
		{
			float num = 0f;
			int num2 = female.personality.xtc_count_vagina + female.personality.xtc_count_anal;
			if (female.HeroineID == HEROINE.RITSUKO)
			{
				if (female.personality.state == Personality.STATE.FIRST)
				{
					num = 0f;
				}
				else if (num2 == 1)
				{
					num = 0.1f;
				}
				else if (num2 >= 2)
				{
					num = 0.2f;
				}
			}
			else if (female.HeroineID == HEROINE.AKIKO)
			{
				if (num2 == 1)
				{
					num = 0.1f;
				}
				else if (num2 >= 2)
				{
					num = 0.2f;
				}
			}
			else if (female.HeroineID == HEROINE.YUKIKO)
			{
				if (female.personality.state == Personality.STATE.FIRST)
				{
					num = 0f;
				}
				else if (num2 == 1)
				{
					num = 0.2f;
				}
				else if (num2 >= 2)
				{
					num = 0.4f;
				}
			}
			if (num > female.NipAdd)
			{
				female.SetNipAdd(num);
			}
		}

		// Token: 0x06000EF6 RID: 3830 RVA: 0x0005DB70 File Offset: 0x0005BD70
		public Female AddFemale(HEROINE heroineID)
		{
			CustomParameter heroineCustomParam = GlobalData.PlayData.GetHeroineCustomParam(heroineID);
			Female female = ResourceUtility.CreateInstance<Female>("FemaleBody");
			female.SetHeroineID(heroineID);
			female.Load(heroineCustomParam, true);
			female.Apply();
			this.AddChara(female);
			female.personality.H_In();
			Personality.STATE state = female.personality.state;
			if (state == Personality.STATE.LAST_EVENT_SISTERS || state == Personality.STATE.LAST_EVENT_YUKIKO_2)
			{
				this.param.maleHateEvent = true;
			}
			return female;
		}

		// Token: 0x06000EF7 RID: 3831 RVA: 0x0005DBE4 File Offset: 0x0005BDE4
		public Female AddFemaleFromVisitor(H_Visitor femaleVisitor)
		{
			Female female = femaleVisitor.GetFemale();
			femaleVisitor.LockPos = true;
			this.AddChara(female);
			Personality.STATE state = female.personality.state;
			if (state == Personality.STATE.LAST_EVENT_SISTERS || state == Personality.STATE.LAST_EVENT_YUKIKO_2)
			{
				this.param.maleHateEvent = true;
			}
			return female;
		}

		// Token: 0x06000EF8 RID: 3832 RVA: 0x0005DC30 File Offset: 0x0005BE30
		public Male AddMale(MALE_ID maleID)
		{
			CustomParameter maleCustomParam = GlobalData.PlayData.GetMaleCustomParam(maleID);
			Male male = ResourceUtility.CreateInstance<Male>("MaleBody");
			male.SetMaleID(maleID);
			male.Load(maleCustomParam, true);
			male.Apply();
			this.AddChara(male);
			return male;
		}

		// Token: 0x06000EF9 RID: 3833 RVA: 0x0005DC74 File Offset: 0x0005BE74
		private void AddChara(Female female)
		{
			this.females.Add(female);
			this.humans.Add(female);
			female.transform.SetParent(this.Transform, false);
			female.transform.localPosition = Vector3.zero;
			female.transform.localRotation = Quaternion.identity;
			female.ik.ClearIK();
			female.ChangeNeckLook(LookAtRotator.TYPE.NO, null, false);
			female.ChangeEyeLook(LookAtRotator.TYPE.TARGET, female.FacePos, false);
			this.voiceLogs.Add(new H_VoiceLog());
		}

		// Token: 0x06000EFA RID: 3834 RVA: 0x0005DD00 File Offset: 0x0005BF00
		private void AddChara(Male male)
		{
			this.males.Add(male);
			this.humans.Add(male);
			male.transform.SetParent(this.Transform, false);
			male.transform.localPosition = Vector3.zero;
			male.transform.localRotation = Quaternion.identity;
			male.ChangeEyeLook(LookAtRotator.TYPE.TARGET, male.FacePos, false);
		}

		// Token: 0x06000EFB RID: 3835 RVA: 0x0005DD68 File Offset: 0x0005BF68
		private void DelChara(Female female)
		{
			this.females.Remove(female);
			this.humans.Remove(female);
			UnityEngine.Object.Destroy(female.gameObject);
		}

		// Token: 0x06000EFC RID: 3836 RVA: 0x0005DD90 File Offset: 0x0005BF90
		private void DelChara(Male male)
		{
			this.males.Remove(male);
			this.humans.Remove(male);
			UnityEngine.Object.Destroy(male.gameObject);
		}

		// Token: 0x06000EFD RID: 3837 RVA: 0x0005DDB8 File Offset: 0x0005BFB8
		private void RemoveChara(Female female)
		{
			if (this.h_scene.visitor != null && this.h_scene.visitor.GetFemale() == female)
			{
				this.h_scene.visitor.LockPos = false;
				this.h_scene.visitor.LoadAC(SEX.FEMALE);
				this.h_scene.visitor.GetHuman().VoiceShutUp();
				this.h_scene.visitor.Expression(H_VisitorExpression.TYPE.BREATH);
			}
			female.transform.SetParent(null, false);
			female.ik.ClearIK();
			this.females.Remove(female);
			this.humans.Remove(female);
		}

		// Token: 0x06000EFE RID: 3838 RVA: 0x0005DE6C File Offset: 0x0005C06C
		private void SetInput(H_InputBase input)
		{
			this.input = input;
		}

		// Token: 0x06000EFF RID: 3839 RVA: 0x0005DE78 File Offset: 0x0005C078
		public void PlayAnime(string name, float transitionDuration)
		{
			foreach (Human human in this.humans)
			{
				H_Members.PlayAnime(human.body.Anime, name, transitionDuration);
			}
			if (this.mapIK.runtimeAnimatorController != null)
			{
				H_Members.PlayAnime(this.mapIK, name, transitionDuration);
			}
			foreach (H_Item h_Item in this._itemObjects)
			{
				if (!(h_Item == null))
				{
					H_Members.PlayAnime(h_Item.animator, name, transitionDuration);
				}
			}
			if (this.StyleData != null)
			{
				this.SetStyleIK(name);
			}
		}

		// Token: 0x06000F00 RID: 3840 RVA: 0x0005DF78 File Offset: 0x0005C178
		private static void PlayAnime(Animator anm, string name, float transitionDuration)
		{
			for (int i = 0; i < anm.layerCount; i++)
			{
				if (transitionDuration <= 0f)
				{
					anm.Play(name, i);
				}
				else
				{
					anm.CrossFadeInFixedTime(name, transitionDuration, i);
				}
			}
		}

		// Token: 0x06000F01 RID: 3841 RVA: 0x0005DFC0 File Offset: 0x0005C1C0
		public void SetLoopPose(float pose)
		{
			foreach (Human human in this.humans)
			{
				human.body.Anime.SetFloat(H_Scene.AnmParamID_Pose, pose);
			}
			if (this.mapIK.runtimeAnimatorController != null)
			{
				this.mapIK.SetFloat(H_Scene.AnmParamID_Pose, pose);
			}
		}

		// Token: 0x06000F02 RID: 3842 RVA: 0x0005E054 File Offset: 0x0005C254
		public void SetLoopStroke(float stroke)
		{
			foreach (Human human in this.humans)
			{
				human.body.Anime.SetFloat(H_Scene.AnmParamID_Stroke, stroke);
			}
			if (this.mapIK.runtimeAnimatorController != null)
			{
				this.mapIK.SetFloat(H_Scene.AnmParamID_Stroke, stroke);
			}
		}

		// Token: 0x06000F03 RID: 3843 RVA: 0x0005E0E8 File Offset: 0x0005C2E8
		public void SetAnimeParam()
		{
			bool flag = this.StyleData != null && (this.StyleData.detailFlag & H_StyleData.DetailMasking_Bust) != 0;
			for (int i = 0; i < this.females.Count; i++)
			{
				Female female = this.females[i];
				float height = female.customParam.body.GetHeight();
				float bustSize = female.customParam.body.GetBustSize();
				if (female.gameObject.activeInHierarchy)
				{
					female.body.Anime.SetFloat(H_Scene.AnmParamID_Height, height);
					if (flag)
					{
						female.body.Anime.SetFloat(H_Scene.AnmParamID_Bust, bustSize);
					}
				}
			}
			float height2 = this.females[0].customParam.body.GetHeight();
			float bustSize2 = this.females[0].customParam.body.GetBustSize();
			for (int j = 0; j < this.males.Count; j++)
			{
				Male male = this.males[j];
				if (male.gameObject.activeInHierarchy)
				{
					male.body.Anime.SetFloat(H_Scene.AnmParamID_Height, height2);
					if (flag)
					{
						male.body.Anime.SetFloat(H_Scene.AnmParamID_Bust, bustSize2);
					}
				}
			}
			if (this.mapIK.runtimeAnimatorController != null)
			{
				this.mapIK.SetFloat(H_Scene.AnmParamID_Height, height2);
			}
		}

		// Token: 0x06000F04 RID: 3844 RVA: 0x0005E284 File Offset: 0x0005C484
		public void SetSpeed(float val)
		{
			if (val < 0.75f)
			{
				this.param.speed = H_SPEED.SLOW;
			}
			else if (val > 2f)
			{
				this.param.speed = H_SPEED.FAST;
			}
			else
			{
				this.param.speed = H_SPEED.NORMAL;
			}
			foreach (Human human in this.humans)
			{
				human.body.Anime.speed = val;
			}
			if (this.mapIK.runtimeAnimatorController != null)
			{
				this.mapIK.speed = val;
			}
		}

		// Token: 0x06000F05 RID: 3845 RVA: 0x0005E350 File Offset: 0x0005C550
		public bool CheckEndAnime()
		{
			return this.GetAnimeNormalizedTime() >= 1f;
		}

		// Token: 0x06000F06 RID: 3846 RVA: 0x0005E364 File Offset: 0x0005C564
		public bool CheckEndAnime(string name)
		{
			return this.CheckAnimeName(name) && this.GetAnimeNormalizedTime() >= 1f;
		}

		// Token: 0x06000F07 RID: 3847 RVA: 0x0005E388 File Offset: 0x0005C588
		public bool CheckAnimeName(string name)
		{
			return this.humans.Count > 0 && this.humans[0].body.Anime.GetCurrentAnimatorStateInfo(0).IsName(name);
		}

		// Token: 0x06000F08 RID: 3848 RVA: 0x0005E3D4 File Offset: 0x0005C5D4
		public float GetAnimeNormalizedTime()
		{
			return (this.humans.Count <= 0) ? 0f : this.humans[0].body.Anime.GetCurrentAnimatorStateInfo(0).normalizedTime;
		}

		// Token: 0x06000F09 RID: 3849 RVA: 0x0005E420 File Offset: 0x0005C620
		public bool CheckEndVoice()
		{
			foreach (Female female in this.females)
			{
				if (female.IsVoicePlaying())
				{
					return false;
				}
			}
			return true;
		}

		// Token: 0x06000F0A RID: 3850 RVA: 0x0005E48C File Offset: 0x0005C68C
		public void OnInput(H_INPUT input)
		{
			this.stateMgr.OnInput(input);
		}

		// Token: 0x06000F0B RID: 3851 RVA: 0x0005E49C File Offset: 0x0005C69C
		public bool ChangeMap(MapData mapData, bool changeTimeOnly)
		{
			bool result = false;
			H_Members.H_PosSet(ref this.posFloor, ref this.floorPosNo, mapData.h_pos.floor);
			H_Members.H_PosSet(ref this.posWall, ref this.wallPosNo, mapData.h_pos.wall);
			H_Members.H_PosSet(ref this.posChair, ref this.chairPosNo, mapData.h_pos.chair);
			H_Members.H_PosSet(ref this.posSpecial, ref this.specialPosNo, mapData.h_pos.special);
			H_Members.H_PosSet(ref this.posFiveR, ref this.fiveR_PosNo, mapData.h_pos.five_Resist);
			H_Members.H_PosSet(ref this.posFiveF, ref this.fiveF_PosNo, mapData.h_pos.five_Flop);
			H_Members.H_PosSet(ref this.posFiveW, ref this.fiveW_PosNo, mapData.h_pos.five_Weakness);
			if (this.StyleData != null && !this.h_scene.CheckEnableStyle(this.StyleData.id))
			{
				string id = H_Members.AlternativeStyle(this.StyleData.type, this.StyleData.state, this.StyleData.detailFlag);
				this.h_scene.ChangeStyle(id);
				result = true;
			}
			if (!changeTimeOnly)
			{
				this.SetDataPos();
			}
			this.Foot(mapData);
			return result;
		}

		// Token: 0x06000F0C RID: 3852 RVA: 0x0005E5E0 File Offset: 0x0005C7E0
		private static string AlternativeStyle(H_StyleData.TYPE type, H_StyleData.STATE state, int detail)
		{
			string text = string.Empty;
			bool flag = (detail & 32) != 0;
			string[] array = new string[]
			{
				"00",
				"00",
				"01",
				"02"
			};
			if (type == H_StyleData.TYPE.INSERT)
			{
				text = "HS";
				if (!flag)
				{
					text = text + "_00_" + array[(int)state] + "_00";
				}
				else
				{
					text = text + "_01_" + array[(int)state] + "_00";
				}
			}
			else if (type == H_StyleData.TYPE.SERVICE)
			{
				text = "HH_01_" + array[(int)state] + "_00";
			}
			else if (type == H_StyleData.TYPE.PETTING)
			{
				text = "HA";
				if (!flag)
				{
					text = text + "_00_" + array[(int)state] + "_00";
				}
				else
				{
					text = text + "_01_" + array[(int)state] + "_00";
				}
			}
			return text;
		}

		// Token: 0x06000F0D RID: 3853 RVA: 0x0005E6CC File Offset: 0x0005C8CC
		private void Foot(MapData mapData)
		{
			for (int i = 0; i < this.humans.Count; i++)
			{
				this.humans[i].Foot(mapData.foot);
			}
		}

		// Token: 0x06000F0E RID: 3854 RVA: 0x0005E70C File Offset: 0x0005C90C
		private static void H_PosSet(ref PosYaw posYaw, ref int no, List<H_Pos> list)
		{
			if (list.Count > 0)
			{
				no %= list.Count;
				posYaw.Copy(list[no].pos);
			}
			else
			{
				posYaw.Zero();
			}
		}

		// Token: 0x06000F0F RID: 3855 RVA: 0x0005E748 File Offset: 0x0005C948
		public void GetNowDataPosNo(out int no, out H_Pos h_pos)
		{
			no = -1;
			h_pos = null;
			if (this.StyleData != null)
			{
				if (this.StyleData.position == H_StyleData.POSITION.FIVE_RESIST)
				{
					h_pos = this.NowPos(ref this.fiveR_PosNo, this.h_scene.map.data.h_pos.five_Resist);
					no = this.fiveR_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_FLOP)
				{
					h_pos = this.NowPos(ref this.fiveF_PosNo, this.h_scene.map.data.h_pos.five_Flop);
					no = this.fiveF_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_WEAKNESS)
				{
					h_pos = this.NowPos(ref this.fiveW_PosNo, this.h_scene.map.data.h_pos.five_Weakness);
					no = this.fiveW_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.SPECIAL)
				{
					h_pos = this.NowPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.special);
					no = this.specialPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.WALL)
				{
					h_pos = this.NowPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					no = this.wallPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.CHAIR)
				{
					h_pos = this.NowPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					no = this.chairPosNo;
				}
				else
				{
					h_pos = this.NowPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					no = this.floorPosNo;
				}
			}
			else if (this.PoseData != null)
			{
				if (this.PoseData.position == H_PoseData.POSITION.WALL)
				{
					h_pos = this.NowPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					no = this.wallPosNo;
				}
				else if (this.PoseData.position == H_PoseData.POSITION.CHAIR)
				{
					h_pos = this.NowPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					no = this.chairPosNo;
				}
				else
				{
					h_pos = this.NowPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					no = this.floorPosNo;
				}
			}
		}

		// Token: 0x06000F10 RID: 3856 RVA: 0x0005EA08 File Offset: 0x0005CC08
		public H_Pos SetDataPos()
		{
			H_Pos h_Pos = null;
			if (this.StyleData != null)
			{
				int h_Light;
				if (this.StyleData.position == H_StyleData.POSITION.FIVE_RESIST)
				{
					h_Pos = this.NowPos(ref this.fiveR_PosNo, this.h_scene.map.data.h_pos.five_Resist);
					h_Light = this.fiveR_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_FLOP)
				{
					h_Pos = this.NowPos(ref this.fiveF_PosNo, this.h_scene.map.data.h_pos.five_Flop);
					h_Light = this.fiveF_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_WEAKNESS)
				{
					h_Pos = this.NowPos(ref this.fiveW_PosNo, this.h_scene.map.data.h_pos.five_Weakness);
					h_Light = this.fiveW_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.SPECIAL)
				{
					h_Pos = this.NowPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.special);
					h_Light = this.specialPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.WALL)
				{
					h_Pos = this.NowPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light = this.wallPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.CHAIR)
				{
					h_Pos = this.NowPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light = this.chairPosNo;
				}
				else
				{
					h_Pos = this.NowPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light);
			}
			else if (this.PoseData != null)
			{
				int h_Light2;
				if (this.PoseData.position == H_PoseData.POSITION.WALL)
				{
					h_Pos = this.NowPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light2 = this.wallPosNo;
				}
				else if (this.PoseData.position == H_PoseData.POSITION.CHAIR)
				{
					h_Pos = this.NowPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light2 = this.chairPosNo;
				}
				else
				{
					h_Pos = this.NowPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light2 = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light2);
			}
			if (h_Pos != null)
			{
				this.SetH_Pos(h_Pos);
			}
			return h_Pos;
		}

		// Token: 0x06000F11 RID: 3857 RVA: 0x0005ECD8 File Offset: 0x0005CED8
		private void SetH_Pos(H_Pos h_pos)
		{
			this.lastPosYaw = h_pos.pos;
			Vector3 zero = Vector3.zero;
			Quaternion identity = Quaternion.identity;
			h_pos.Get(out zero, out identity);
			this.Transform.position = zero;
			this.Transform.rotation = identity;
		}

		// Token: 0x06000F12 RID: 3858 RVA: 0x0005ED20 File Offset: 0x0005CF20
		public H_Pos NextPos()
		{
			H_Pos h_Pos;
			if (this.StyleData != null)
			{
				int h_Light;
				if (this.StyleData.position == H_StyleData.POSITION.FIVE_RESIST)
				{
					h_Pos = this.NextPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Resist);
					h_Light = this.fiveR_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_FLOP)
				{
					h_Pos = this.NextPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Flop);
					h_Light = this.fiveF_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_WEAKNESS)
				{
					h_Pos = this.NextPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Weakness);
					h_Light = this.fiveW_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.SPECIAL)
				{
					h_Pos = this.NextPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.special);
					h_Light = this.specialPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.WALL)
				{
					h_Pos = this.NextPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light = this.wallPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.CHAIR)
				{
					h_Pos = this.NextPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light = this.chairPosNo;
				}
				else
				{
					h_Pos = this.NextPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light);
			}
			else
			{
				int h_Light2;
				if (this.PoseData.position == H_PoseData.POSITION.WALL)
				{
					h_Pos = this.NextPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light2 = this.wallPosNo;
				}
				else if (this.PoseData.position == H_PoseData.POSITION.CHAIR)
				{
					h_Pos = this.NextPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light2 = this.chairPosNo;
				}
				else
				{
					h_Pos = this.NextPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light2 = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light2);
			}
			if (h_Pos != null)
			{
				this.SetH_Pos(h_Pos);
			}
			return h_Pos;
		}

		// Token: 0x06000F13 RID: 3859 RVA: 0x0005EFE8 File Offset: 0x0005D1E8
		public H_Pos PrevPos()
		{
			H_Pos h_Pos;
			if (this.StyleData != null)
			{
				int h_Light;
				if (this.StyleData.position == H_StyleData.POSITION.FIVE_RESIST)
				{
					h_Pos = this.PrevPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Resist);
					h_Light = this.fiveR_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_FLOP)
				{
					h_Pos = this.PrevPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Flop);
					h_Light = this.fiveF_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.FIVE_WEAKNESS)
				{
					h_Pos = this.PrevPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.five_Weakness);
					h_Light = this.fiveW_PosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.SPECIAL)
				{
					h_Pos = this.PrevPos(ref this.specialPosNo, this.h_scene.map.data.h_pos.special);
					h_Light = this.specialPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.WALL)
				{
					h_Pos = this.PrevPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light = this.wallPosNo;
				}
				else if (this.StyleData.position == H_StyleData.POSITION.CHAIR)
				{
					h_Pos = this.PrevPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light = this.chairPosNo;
				}
				else
				{
					h_Pos = this.PrevPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light);
			}
			else
			{
				int h_Light2;
				if (this.PoseData.position == H_PoseData.POSITION.WALL)
				{
					h_Pos = this.PrevPos(ref this.wallPosNo, this.h_scene.map.data.h_pos.wall);
					h_Light2 = this.wallPosNo;
				}
				else if (this.PoseData.position == H_PoseData.POSITION.CHAIR)
				{
					h_Pos = this.PrevPos(ref this.chairPosNo, this.h_scene.map.data.h_pos.chair);
					h_Light2 = this.chairPosNo;
				}
				else
				{
					h_Pos = this.PrevPos(ref this.floorPosNo, this.h_scene.map.data.h_pos.floor);
					h_Light2 = this.floorPosNo;
				}
				this.h_scene.SetH_Light(h_Light2);
			}
			if (h_Pos != null)
			{
				this.SetH_Pos(h_Pos);
			}
			return h_Pos;
		}

		// Token: 0x06000F14 RID: 3860 RVA: 0x0005F2B0 File Offset: 0x0005D4B0
		private H_Pos NextPos(ref int no, List<H_Pos> list)
		{
			if (list.Count > 0)
			{
				no = (no + 1) % list.Count;
				return list[no];
			}
			return null;
		}

		// Token: 0x06000F15 RID: 3861 RVA: 0x0005F2D8 File Offset: 0x0005D4D8
		private H_Pos PrevPos(ref int no, List<H_Pos> list)
		{
			if (list.Count > 0)
			{
				no = (list.Count + no - 1) % list.Count;
				return list[no];
			}
			return null;
		}

		// Token: 0x06000F16 RID: 3862 RVA: 0x0005F304 File Offset: 0x0005D504
		private H_Pos NowPos(ref int no, List<H_Pos> list)
		{
			if (list.Count > 0)
			{
				no %= list.Count;
				return list[no];
			}
			return null;
		}

		// Token: 0x06000F17 RID: 3863 RVA: 0x0005F328 File Offset: 0x0005D528
		public void ChangeStyle(H_StyleData data)
		{
			this.PoseData = null;
			foreach (H_Item h_Item in this._itemObjects)
			{
				if (!(h_Item == null))
				{
					UnityEngine.Object.Destroy(h_Item.gameObject);
				}
			}
			this._itemObjects.Clear();
			if ((data.detailFlag & 1024) != 0)
			{
				if ((data.detailFlag & 16) != 0)
				{
					GameObject gameObject = AssetBundleLoader.LoadAndInstantiate<GameObject>(GlobalData.assetBundlePath, "h/h_item", "p_item_vibe_01");
					Transform target = Transform_Utility.FindTransform(this.females[0].body.Anime.transform, "k_f_kokan_00");
					H_Item component = gameObject.GetComponent<H_Item>();
					component.SetTarget(target);
					this._itemObjects.Add(component);
				}
				if ((data.detailFlag & 32) != 0)
				{
					GameObject gameObject2 = AssetBundleLoader.LoadAndInstantiate<GameObject>(GlobalData.assetBundlePath, "h/h_item", "p_item_analvibe");
					Transform target2 = Transform_Utility.FindTransform(this.females[0].body.Anime.transform, "k_f_ana_00");
					H_Item component2 = gameObject2.GetComponent<H_Item>();
					component2.SetTarget(target2);
					this._itemObjects.Add(component2);
				}
			}
			bool set = (data.detailFlag & 2048) != 0;
			for (int i = 0; i < this.males.Count; i++)
			{
				this.males[i].ChangeRestrict(set);
			}
			bool flag = (data.detailFlag & 8192) != 0;
			if (flag)
			{
				GameObject gameObject3 = AssetBundleLoader.LoadAndInstantiate<GameObject>(GlobalData.assetBundlePath, "h/h_item", "p_item_holder");
				H_Item component3 = gameObject3.GetComponent<H_Item>();
				component3.SetTarget(this.Transform);
				this._itemObjects.Add(component3);
			}
			bool set2 = (data.detailFlag & 16384) != 0;
			for (int j = 0; j < this.females.Count; j++)
			{
				this.females[j].ChangeRestrict(set2);
			}
			H_StyleData.MEMBER member = data.member;
			this.MemberAdjust(data.member);
			string[] array = new string[]
			{
				"M",
				"N",
				"O",
				"P"
			};
			string[] array2 = new string[]
			{
				"F",
				"G"
			};
			AssetBundleController assetBundleController = new AssetBundleController(false);
			assetBundleController.OpenFromFile(GlobalData.assetBundlePath, data.assetBundle);
			for (int k = 0; k < this.males.Count; k++)
			{
				this.males[k].body.Anime.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>("AC_" + data.id + "_" + array[k]);
			}
			for (int l = 0; l < this.females.Count; l++)
			{
				this.females[l].body.Anime.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>("AC_" + data.id + "_" + array2[l]);
			}
			this.mapIK.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>("AC_" + data.id + "_H");
			string[] array3 = new string[]
			{
				"_I",
				"_J"
			};
			for (int m = 0; m < this._itemObjects.Count; m++)
			{
				H_Item h_Item2 = this._itemObjects[m];
				if (!(h_Item2 == null))
				{
					if (m >= array3.Length)
					{
						GlobalData.Debug_LogError("出乎我的意料。");
					}
					h_Item2.animator.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>("AC_" + data.id + array3[m]);
				}
			}
			assetBundleController.Close(false);
			Resources.UnloadUnusedAssets();
			bool flag2 = this.StyleData != null && this.StyleData.position == data.position;
			this.StyleData = data;
			if (!flag2)
			{
				H_Pos h_pos = this.SetDataPos();
				this.h_scene.VisitorPos(h_pos, -1);
				this.h_scene.CharaMove.SetDef(this.Transform.position, this.Transform.rotation);
			}
			if (this.StyleData.hasLight)
			{
				this.h_scene.SetLightDir(this.StyleData.lightEuler);
			}
			this.param.mouth = H_MOUTH.FREE;
			this.param.style = data;
			this.param.continuanceXTC_F = 0;
			for (int n = 0; n < this.females.Count; n++)
			{
				bool flag3 = true;
				if (data.type != H_StyleData.TYPE.PETTING)
				{
					flag3 = ((data.detailFlag & H_StyleData.DetailMasking_UseMouth) == 0);
				}
				this.females[n].ChangeShowGag(flag3);
			}
			if (this.females[0].personality.state == Personality.STATE.FIRST)
			{
				this.VoiceExpression(H_Voice.TYPE.BREATH);
			}
			else
			{
				int num = UnityEngine.Random.Range(0, this.females.Count);
				for (int num2 = 0; num2 < this.females.Count; num2++)
				{
					H_Voice.TYPE voice = (num2 != num) ? H_Voice.TYPE.BREATH : H_Voice.TYPE.CHANGE_STYLE;
					this.VoiceExpression(num2, voice);
				}
			}
			this.Wear();
			bool flag4 = (this.StyleData.detailFlag & 384) != 0;
			for (int num3 = 0; num3 < this.females.Count; num3++)
			{
				this.females[num3].body.bustDynamicBone_L.enabled = !flag4;
				this.females[num3].body.bustDynamicBone_R.enabled = !flag4;
			}
		}

		// Token: 0x06000F18 RID: 3864 RVA: 0x0005F968 File Offset: 0x0005DB68
		private void MemberAdjust(H_StyleData.MEMBER memberType)
		{
			int[] array = new int[]
			{
				1,
				2,
				3,
				4,
				1
			};
			int[] array2 = new int[]
			{
				1,
				1,
				1,
				1,
				2
			};
			int num = array[(int)memberType];
			int num2 = array2[(int)memberType];
			while (this.males.Count > num)
			{
				int index = this.males.Count - 1;
				this.DelChara(this.males[index]);
			}
			while (this.females.Count > num2)
			{
				int index2 = this.females.Count - 1;
				this.RemoveChara(this.females[index2]);
			}
			while (this.males.Count < num)
			{
				MALE_ID maleID = (this.males.Count - 1) % 3 + MALE_ID.MOB_A;
				Male male = this.AddMale(maleID);
				male.Foot(this.h_scene.map.data.foot);
			}
			while (this.females.Count < num2)
			{
				if (GlobalData.PlayData.lastSelectVisitor < VISITOR.RITSUKO || GlobalData.PlayData.lastSelectVisitor >= (VISITOR)4)
				{
					break;
				}
				this.AddFemaleFromVisitor(this.h_scene.visitor);
			}
		}

		// Token: 0x06000F19 RID: 3865 RVA: 0x0005FAB0 File Offset: 0x0005DCB0
		public void StartPose(H_PoseData data)
		{
			this.PoseData = data;
			this.MemberAdjust(data.members);
			AssetBundleController assetBundleController = new AssetBundleController(false);
			assetBundleController.OpenFromFile(GlobalData.assetBundlePath, "h/h_in");
			for (int i = 0; i < this.males.Count; i++)
			{
				Male male = this.males[i];
				male.body.Anime.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>(H_Members._maleAnimNames[i]);
			}
			for (int j = 0; j < this.females.Count; j++)
			{
				this.females[j].body.Anime.runtimeAnimatorController = assetBundleController.LoadAsset<RuntimeAnimatorController>("AC_IN_F");
			}
			assetBundleController.Close(false);
			foreach (Male male2 in this.males)
			{
				male2.gameObject.SetActive(this.PoseData.showMale);
			}
			string id = this.PoseData.id;
			if (this.PoseData.members == H_StyleData.MEMBER.M1F2)
			{
				for (int k = 0; k < this.males.Count; k++)
				{
					H_Members.PlayAnime(this.males[k].body.Anime, id, 0f);
				}
				for (int l = 0; l < this.females.Count; l++)
				{
					H_Members.PlayAnime(this.females[l].body.Anime, id + "_" + l.ToString("00"), 0f);
				}
			}
			else
			{
				this.PlayAnime(id, 0f);
			}
			this.SetIK(this.PoseData.ikDatas);
			this.StateMgr.ChangeState(H_STATE.START, null);
		}

		// Token: 0x06000F1A RID: 3866 RVA: 0x0005FCC4 File Offset: 0x0005DEC4
		public void SetStyleIK(string animeName)
		{
			IK_DataList ik_DataList;
			if (this.StyleData.alternativeIK.ContainsKey(animeName))
			{
				ik_DataList = this.StyleData.alternativeIK[animeName];
			}
			else
			{
				ik_DataList = this.StyleData.baseIK;
			}
			if (ik_DataList != this.ikDataList)
			{
				this.SetIK(ik_DataList);
			}
		}

		// Token: 0x06000F1B RID: 3867 RVA: 0x0005FD20 File Offset: 0x0005DF20
		public void ClearIK()
		{
			foreach (Human human in this.humans)
			{
				human.ik.ClearIK();
			}
			this.ikDataList = null;
		}

		// Token: 0x06000F1C RID: 3868 RVA: 0x0005FD88 File Offset: 0x0005DF88
		public void SetIK(IK_DataList dataList)
		{
			this.ClearIK();
			if (dataList != null)
			{
				this.ikDataList = dataList;
				foreach (IK_Data data in dataList.ikDatas)
				{
					this.SetIK(data, 2f);
				}
			}
		}

		// Token: 0x06000F1D RID: 3869 RVA: 0x0005FDFC File Offset: 0x0005DFFC
		public void SetIK(IK_Data data, float speed)
		{
			bool flag = false;
			Human humanFromString = this.GetHumanFromString(data.ikChara);
			Transform iktargetFromString = this.GetIKTargetFromString(data.targetChara);
			if (humanFromString == null)
			{
				flag = true;
				GlobalData.Debug_LogWarning("不确切ikChara:" + data.ikChara);
			}
			if (iktargetFromString == null)
			{
				flag = true;
				GlobalData.Debug_LogWarning("不确切targetChara:" + data.targetChara);
			}
			if (flag)
			{
				return;
			}
			Transform transform = Transform_Utility.FindTransform(iktargetFromString, data.targetPart);
			if (transform != null)
			{
				humanFromString.ik.SetIK(data.ikPart, transform, speed);
			}
			else
			{
				GlobalData.Debug_LogError("不明的目标:" + data.targetPart);
			}
		}

		// Token: 0x06000F1E RID: 3870 RVA: 0x0005FEB8 File Offset: 0x0005E0B8
		public void Expression(H_Expression.TYPE type)
		{
			for (int i = 0; i < this.females.Count; i++)
			{
				this.h_scene.Expression(this.females[i], type, this.param);
			}
		}

		// Token: 0x06000F1F RID: 3871 RVA: 0x0005FF00 File Offset: 0x0005E100
		public void VoiceExpression(H_Voice.TYPE voice)
		{
			for (int i = 0; i < this.females.Count; i++)
			{
				this.VoiceExpression(this.females[i], this.voiceLogs[i], voice);
			}
		}

		// Token: 0x06000F20 RID: 3872 RVA: 0x0005FF4C File Offset: 0x0005E14C
		public void MaleExpression(H_Expression_Male.TYPE type)
		{
			for (int i = 0; i < this.males.Count; i++)
			{
				this.h_scene.Expression(this.males[i], type, this.param);
			}
		}

		// Token: 0x06000F21 RID: 3873 RVA: 0x0005FF94 File Offset: 0x0005E194
		public bool VoiceExpression(int femaleNo, H_Voice.TYPE voice)
		{
			return this.VoiceExpression(this.females[femaleNo], this.voiceLogs[femaleNo], voice);
		}

		// Token: 0x06000F22 RID: 3874 RVA: 0x0005FFB8 File Offset: 0x0005E1B8
		private bool VoiceExpression(Female female, H_VoiceLog voiceLog, H_Voice.TYPE voice)
		{
			H_Voice.Data data = this.h_scene.Voice(female, voiceLog, voice, this);
			if (data != null)
			{
				if (data.priority > 0)
				{
					voiceLog.AddPriorityTalk(data.File);
				}
				else
				{
					voiceLog.AddPant(data.File);
				}
				this.ExpressionFromVoice(female, data);
				return true;
			}
			female.ExpressionPlay(1, "Mouth_Def", 0.2f);
			return false;
		}

		// Token: 0x06000F23 RID: 3875 RVA: 0x00060020 File Offset: 0x0005E220
		private void ExpressionFromVoice(Female female, H_Voice.Data voice)
		{
			if (this.h_scene.Expression(female, voice.File, this.param) == null)
			{
				H_Expression.TYPE type = this.VoiceToExpressionType(female, voice);
				this.h_scene.Expression(female, type, this.param);
			}
		}

		// Token: 0x06000F24 RID: 3876 RVA: 0x00060068 File Offset: 0x0005E268
		private H_Expression.TYPE VoiceToExpressionType(Female female, H_Voice.Data voice)
		{
			if (voice.type == H_Voice.TYPE.BREATH)
			{
				return H_Expression.TYPE.BREATH;
			}
			if (voice.type == H_Voice.TYPE.START)
			{
				return H_Expression.TYPE.TALK;
			}
			if (voice.type == H_Voice.TYPE.LEAVING)
			{
				return H_Expression.TYPE.TALK;
			}
			if (voice.type == H_Voice.TYPE.LEAVING)
			{
				H_Expression.TYPE result = H_Expression.TYPE.INSERT;
				if ((this.param.style.detailFlag & 4) != 0)
				{
					result = H_Expression.TYPE.INSERT_FELLATIO;
				}
				else if ((this.param.style.detailFlag & 8) != 0)
				{
					result = H_Expression.TYPE.INSERT_IRRUMATIO;
				}
				return result;
			}
			if (voice.type == H_Voice.TYPE.ACT)
			{
				return this.VoiceToExpressionType_Act(voice);
			}
			if (voice.type == H_Voice.TYPE.XTC_OMEN_F || voice.type == H_Voice.TYPE.XTC_OMEN_M)
			{
				return this.VoiceToExpressionType_Spurt(voice);
			}
			if (voice.type == H_Voice.TYPE.XTC_F)
			{
				return H_Expression.TYPE.XTC;
			}
			if (voice.type == H_Voice.TYPE.XTC_M)
			{
				return this.VoiceToExpressionType_XTC_M(female, voice);
			}
			if (voice.type == H_Voice.TYPE.COUGH)
			{
				return H_Expression.TYPE.COUGH;
			}
			if (voice.type == H_Voice.TYPE.DRINK)
			{
				return H_Expression.TYPE.DRINK;
			}
			if (voice.type == H_Voice.TYPE.VOMIT)
			{
				return H_Expression.TYPE.VOMIT;
			}
			if (voice.type == H_Voice.TYPE.SHOW_ORAL)
			{
				return H_Expression.TYPE.SHOW_ORAL;
			}
			if (voice.type == H_Voice.TYPE.FALL_LIQUID)
			{
				return H_Expression.TYPE.PANT_TALK_LO;
			}
			if (voice.type == H_Voice.TYPE.INCONTINENCE)
			{
				return H_Expression.TYPE.PANT_TALK_LO;
			}
			if (voice.type == H_Voice.TYPE.XTC_AFTER_TALK)
			{
				return H_Expression.TYPE.TALK;
			}
			if (voice.type == H_Voice.TYPE.XTC_AFTER_BREATH)
			{
				if (this.param.xtcType == XTC_TYPE.EJA_IN)
				{
					return H_Expression.TYPE.INEJA_AFTER_BREATH;
				}
				if (this.param.xtcType == XTC_TYPE.EJA_OUT)
				{
					return H_Expression.TYPE.OUTEJA_AFTER_BREATH;
				}
				return H_Expression.TYPE.XTC_AFTER_BREATH;
			}
			else
			{
				if (voice.type == H_Voice.TYPE.EXIT)
				{
					return H_Expression.TYPE.TALK;
				}
				if (voice.type == H_Voice.TYPE.ACT_TALK)
				{
					return (this.param.speed <= H_SPEED.NORMAL) ? H_Expression.TYPE.PANT_TALK_LO : H_Expression.TYPE.PANT_TALK_HI;
				}
				if (voice.type == H_Voice.TYPE.CHANGE_STYLE)
				{
					return H_Expression.TYPE.TALK;
				}
				GlobalData.Debug_LogWarning("表情条件不确定");
				return H_Expression.TYPE.BREATH;
			}
		}

		// Token: 0x06000F25 RID: 3877 RVA: 0x00060234 File Offset: 0x0005E434
		private H_Expression.TYPE VoiceToExpressionType_Act(H_Voice.Data voice)
		{
			bool flag = this.param.speed > H_SPEED.NORMAL;
			bool hit = this.param.hit;
			if (voice.kind == H_Voice.KIND.TALK)
			{
				return (!flag) ? H_Expression.TYPE.PANT_TALK_LO : H_Expression.TYPE.PANT_TALK_HI;
			}
			if ((this.param.style.detailFlag & 8) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.IRRUMATIO_HI_NORMAL : H_Expression.TYPE.IRRUMATIO_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.IRRUMATIO_LO_NORMAL : H_Expression.TYPE.IRRUMATIO_LO_HIT;
			}
			else if ((this.param.style.detailFlag & 4) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.FELLATIO_HI_NORMAL : H_Expression.TYPE.FELLATIO_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.FELLATIO_LO_NORMAL : H_Expression.TYPE.FELLATIO_LO_HIT;
			}
			else if (this.param.style.type != H_StyleData.TYPE.PETTING && (this.param.style.detailFlag & 2) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.LICK_HI_NORMAL : H_Expression.TYPE.LICK_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.LICK_LO_NORMAL : H_Expression.TYPE.LICK_LO_HIT;
			}
			else
			{
				if (this.param.style.type == H_StyleData.TYPE.SERVICE)
				{
					return (!flag) ? H_Expression.TYPE.JOB_LO : H_Expression.TYPE.JOB_HI;
				}
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.PANT_HI_NORMAL : H_Expression.TYPE.PANT_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.PANT_LO_NORMAL : H_Expression.TYPE.PANT_LO_HIT;
			}
		}

		// Token: 0x06000F26 RID: 3878 RVA: 0x00060388 File Offset: 0x0005E588
		public static H_Expression.TYPE VoiceToExpressionType_Act(H_Parameter h_param, H_Voice.KIND voiceKind)
		{
			bool flag = h_param.speed > H_SPEED.NORMAL;
			bool hit = h_param.hit;
			H_StyleData style = h_param.style;
			if (voiceKind == H_Voice.KIND.TALK)
			{
				return (!flag) ? H_Expression.TYPE.PANT_TALK_LO : H_Expression.TYPE.PANT_TALK_HI;
			}
			if ((style.detailFlag & 8) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.IRRUMATIO_HI_NORMAL : H_Expression.TYPE.IRRUMATIO_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.IRRUMATIO_LO_NORMAL : H_Expression.TYPE.IRRUMATIO_LO_HIT;
			}
			else if ((style.detailFlag & 4) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.FELLATIO_HI_NORMAL : H_Expression.TYPE.FELLATIO_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.FELLATIO_LO_NORMAL : H_Expression.TYPE.FELLATIO_LO_HIT;
			}
			else if (style.type != H_StyleData.TYPE.PETTING && (style.detailFlag & 2) != 0)
			{
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.LICK_HI_NORMAL : H_Expression.TYPE.LICK_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.LICK_LO_NORMAL : H_Expression.TYPE.LICK_LO_HIT;
			}
			else
			{
				if (style.type == H_StyleData.TYPE.SERVICE)
				{
					return (!flag) ? H_Expression.TYPE.JOB_LO : H_Expression.TYPE.JOB_HI;
				}
				if (flag)
				{
					return (!hit) ? H_Expression.TYPE.PANT_HI_NORMAL : H_Expression.TYPE.PANT_HI_HIT;
				}
				return (!hit) ? H_Expression.TYPE.PANT_LO_NORMAL : H_Expression.TYPE.PANT_LO_HIT;
			}
		}

		// Token: 0x06000F27 RID: 3879 RVA: 0x000604A4 File Offset: 0x0005E6A4
		private H_Expression.TYPE VoiceToExpressionType_Spurt(H_Voice.Data voice)
		{
			if (voice.kind == H_Voice.KIND.TALK)
			{
				return H_Expression.TYPE.PANT_TALK_HI;
			}
			if ((this.param.style.detailFlag & 8) != 0)
			{
				return H_Expression.TYPE.IRRUMATIO_HI_HIT;
			}
			if ((this.param.style.detailFlag & 4) != 0)
			{
				return H_Expression.TYPE.FELLATIO_HI_HIT;
			}
			if (this.param.style.type != H_StyleData.TYPE.PETTING && (this.param.style.detailFlag & 2) != 0)
			{
				return H_Expression.TYPE.LICK_HI_HIT;
			}
			if (this.param.style.type == H_StyleData.TYPE.SERVICE)
			{
				return H_Expression.TYPE.JOB_HI;
			}
			return H_Expression.TYPE.PANT_HI_HIT;
		}

		// Token: 0x06000F28 RID: 3880 RVA: 0x0006053C File Offset: 0x0005E73C
		private H_Expression.TYPE VoiceToExpressionType_XTC_M(Female female, H_Voice.Data voice)
		{
			bool likeSperm = female.personality.likeSperm;
			if (this.param.xtcType == XTC_TYPE.EJA_OUT)
			{
				return (!likeSperm) ? H_Expression.TYPE.EJACULATION_OUT_NORMAL : H_Expression.TYPE.EJACULATION_OUT_LIKE;
			}
			if ((this.param.style.detailFlag & H_StyleData.DetailMasking_InMouth) != 0)
			{
				return (!likeSperm) ? H_Expression.TYPE.EJACULATION_MOUTH_NORMAL : H_Expression.TYPE.EJACULATION_MOUTH_LIKE;
			}
			return (!likeSperm) ? H_Expression.TYPE.EJACULATION_IN_NORMAL : H_Expression.TYPE.EJACULATION_IN_LIKE;
		}

		// Token: 0x06000F29 RID: 3881 RVA: 0x000605B0 File Offset: 0x0005E7B0
		public void Wear()
		{
			if (this.PoseData == null)
			{
				if (this.StyleData != null)
				{
					foreach (Female female in this.females)
					{
						WEAR_SHOW show = WEAR_SHOW.ALL;
						WEAR_SHOW show2 = WEAR_SHOW.ALL;
						WEAR_SHOW show3 = WEAR_SHOW.ALL;
						WEAR_SHOW show4 = WEAR_SHOW.ALL;
						WEAR_SHOW show5 = WEAR_SHOW.ALL;
						if (this.StyleData.type == H_StyleData.TYPE.INSERT)
						{
							show2 = WEAR_SHOW.HALF;
							show4 = WEAR_SHOW.HALF;
							show5 = WEAR_SHOW.HALF;
							if ((this.StyleData.detailFlag & 32) != 0)
							{
								show4 = WEAR_SHOW.HIDE;
							}
						}
						else if (this.StyleData.type == H_StyleData.TYPE.PETTING)
						{
							if ((this.StyleData.detailFlag & 16) != 0)
							{
								show2 = WEAR_SHOW.HALF;
								show4 = WEAR_SHOW.HALF;
								show5 = WEAR_SHOW.HALF;
							}
							else if ((this.StyleData.detailFlag & 32) != 0)
							{
								show2 = WEAR_SHOW.HALF;
								show4 = WEAR_SHOW.HIDE;
								show5 = WEAR_SHOW.HALF;
							}
						}
						else if (this.StyleData.type == H_StyleData.TYPE.SERVICE)
						{
							if ((this.StyleData.detailFlag & 128) != 0)
							{
								show = WEAR_SHOW.HALF;
								show3 = WEAR_SHOW.HALF;
								show2 = WEAR_SHOW.HALF;
							}
							else
							{
								show2 = WEAR_SHOW.HALF;
							}
						}
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.TOPUPPER, show);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.TOPLOWER, show2);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.BOTTOM, show2);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.BRA, show3);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SHORTS, show4);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SWIMUPPER, show3);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SWIMLOWER, show4);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SWIM_TOPUPPER, show);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SWIM_TOPLOWER, show2);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.SWIM_BOTTOM, show2);
						female.wears.ChangeShow_StripOnly(WEAR_SHOW_TYPE.PANST, show5);
						female.CheckShow();
					}
				}
			}
		}

		// Token: 0x06000F2A RID: 3882 RVA: 0x00060794 File Offset: 0x0005E994
		public Human GetHumanFromString(string str)
		{
			if (str.IndexOf("f") == 0)
			{
				int index = int.Parse(str.Remove(0, 1));
				return this.females[index];
			}
			if (str.IndexOf("m") == 0)
			{
				int index2 = int.Parse(str.Remove(0, 1));
				return this.males[index2];
			}
			return null;
		}

		// Token: 0x06000F2B RID: 3883 RVA: 0x000607F8 File Offset: 0x0005E9F8
		public Transform GetIKTargetFromString(string str)
		{
			if (str.IndexOf("f") == 0)
			{
				int index = int.Parse(str.Remove(0, 1));
				return this.females[index].body.Anime.transform;
			}
			if (str.IndexOf("m") == 0)
			{
				int index2 = int.Parse(str.Remove(0, 1));
				return this.males[index2].body.Anime.transform;
			}
			if (str.IndexOf("n") == 0)
			{
				return this.mapIK.transform;
			}
			if (str.IndexOf("i") == 0)
			{
				int index3 = int.Parse(str.Remove(0, 1));
				return this._itemObjects[index3].transform;
			}
			return null;
		}

		// Token: 0x06000F2C RID: 3884 RVA: 0x000608C8 File Offset: 0x0005EAC8
		public bool HasHitArea()
		{
			if (this.StyleData == null)
			{
				return false;
			}
			if (this.StyleData.type == H_StyleData.TYPE.SERVICE)
			{
				return true;
			}
			for (int i = 0; i < this.females.Count; i++)
			{
				if (this.HasHitArea(this.females[i]))
				{
					return true;
				}
			}
			return false;
		}

		// Token: 0x06000F2D RID: 3885 RVA: 0x0006092C File Offset: 0x0005EB2C
		public bool HasHitArea(Female female)
		{
			return this.StyleData != null && ((female.personality.feelVagina && (this.StyleData.detailFlag & 16) != 0) || (female.personality.feelAnus && (this.StyleData.detailFlag & 32) != 0));
		}

		// Token: 0x06000F2E RID: 3886 RVA: 0x00060994 File Offset: 0x0005EB94
		public void AddGage(bool addFemale, bool addMale)
		{
			if (this.h_scene.IsOverlapMode())
			{
				return;
			}
			bool flag = this.StyleData.type == H_StyleData.TYPE.INSERT || this.StyleData.type == H_StyleData.TYPE.PETTING;
			bool flag2 = this.StyleData.type == H_StyleData.TYPE.SERVICE;
			float num = (!flag || !this.param.hit) ? 1f : this.h_scene.hitSpeedRate;
			float num2 = (!flag2 || !this.param.hit) ? 1f : this.h_scene.hitSpeedRate;
			if (addFemale && !this.h_scene.femaleGageLock.isOn)
			{
				this.FemaleGageVal += this.h_scene.femaleGageSpeed * num * Time.deltaTime;
				this.FemaleGageVal = Mathf.Clamp01(this.FemaleGageVal);
			}
			if (addMale && !this.h_scene.maleGageLock.isOn)
			{
				this.MaleGageVal += this.h_scene.maleGageSpeed * num2 * Time.deltaTime;
				this.MaleGageVal = Mathf.Clamp01(this.MaleGageVal);
			}
		}

		// Token: 0x06000F2F RID: 3887 RVA: 0x00060AD4 File Offset: 0x0005ECD4
		public void AddCountXTC()
		{
			for (int i = 0; i < this.females.Count; i++)
			{
				if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.EJA_OUT || this.param.xtcType == XTC_TYPE.XTC_W)
				{
					this.females[i].personality.eja_count++;
				}
				if ((this.param.style.detailFlag & 16) != 0)
				{
					if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.EJA_OUT || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.eja_count_vagina++;
					}
					if (this.param.xtcType == XTC_TYPE.XTC_F || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.xtc_count_vagina++;
						this.females[i].personality.AddFeelVagina();
					}
					if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.spermInCntV++;
					}
				}
				else if ((this.param.style.detailFlag & 32) != 0)
				{
					if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.EJA_OUT || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.eja_count_anal++;
					}
					if (this.param.xtcType == XTC_TYPE.XTC_F || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.xtc_count_anal++;
						this.females[i].personality.AddFeelAnus();
					}
					if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.XTC_W)
					{
						this.females[i].personality.spermInCntA++;
					}
				}
				if (this.param.xtcType == XTC_TYPE.EJA_IN || this.param.xtcType == XTC_TYPE.XTC_W)
				{
					this.females[i].personality.AddLikeSperm();
				}
				if (this.param.style.type != H_StyleData.TYPE.PETTING && ((this.param.style.detailFlag & 2) != 0 || (this.param.style.detailFlag & H_StyleData.DetailMasking_InMouth) != 0))
				{
					this.females[i].personality.AddLikeFeratio();
				}
			}
			this.h_scene.ExitEnable = true;
		}

		// Token: 0x06000F30 RID: 3888 RVA: 0x00060DF4 File Offset: 0x0005EFF4
		public void SwapFemale(int no, Female female)
		{
			this.females[no] = female;
			female.transform.SetParent(this.Transform, false);
			female.transform.localPosition = Vector3.zero;
			female.transform.localRotation = Quaternion.identity;
			female.ChangeNeckLook(LookAtRotator.TYPE.NO, null, false);
			female.ChangeEyeLook(LookAtRotator.TYPE.TARGET, female.FacePos, false);
			int swapVisitor = this.param.swapVisitor;
			this.param.Init();
			this.param.mapName = this.h_scene.map.name;
			this.param.swapVisitor = swapVisitor;
			this.voiceLogs[no].Clear();
			this.humans.Clear();
			for (int i = 0; i < this.females.Count; i++)
			{
				this.humans.Add(this.females[i]);
			}
			for (int j = 0; j < this.males.Count; j++)
			{
				this.humans.Add(this.males[j]);
			}
			this.FemaleGageVal = this.FemaleGageStartVal();
		}

		// Token: 0x06000F31 RID: 3889 RVA: 0x00060F24 File Offset: 0x0005F124
		public void SwapFemale01()
		{
			if (this.females.Count < 2)
			{
				GlobalData.Debug_LogError("不可互换");
				return;
			}
			Female value = this.females[0];
			this.females[0] = this.females[1];
			this.females[1] = value;
			H_VoiceLog value2 = this.voiceLogs[0];
			this.voiceLogs[0] = this.voiceLogs[1];
			this.voiceLogs[1] = value2;
		}

		// Token: 0x06000F32 RID: 3890 RVA: 0x00060FB4 File Offset: 0x0005F1B4
		public float FemaleGageStartVal()
		{
			int num = this.females[0].personality.xtc_count_vagina + this.females[0].personality.xtc_count_anal;
			num = Mathf.Clamp(num, 0, 2);
			return (float)num * 0.33333334f;
		}

		// Token: 0x06000F33 RID: 3891 RVA: 0x00061008 File Offset: 0x0005F208
		private void SetPosYaw(PosYaw pos_yaw)
		{
			this.lastPosYaw = pos_yaw;
			this.Transform.position = pos_yaw.pos;
			this.Transform.rotation = Quaternion.Euler(0f, pos_yaw.yaw, 0f);
		}

		// Token: 0x06000F34 RID: 3892 RVA: 0x00061044 File Offset: 0x0005F244
		public PosYaw GetLastPosYaw()
		{
			return this.lastPosYaw;
		}

		// Token: 0x06000F35 RID: 3893 RVA: 0x0006104C File Offset: 0x0005F24C
		public Transform CaclVisitorLookPos()
		{
			Female female = this.h_scene.mainMembers.GetFemale(0);
			Vector3 position = female.HeadPosTrans.position;
			this.visitorLookPos.transform.position = position;
			return this.visitorLookPos.transform;
		}

		// Token: 0x06000F36 RID: 3894 RVA: 0x00061094 File Offset: 0x0005F294
		public Human GetHuman(int no)
		{
			return this.humans[no];
		}

		// Token: 0x06000F37 RID: 3895 RVA: 0x000610A4 File Offset: 0x0005F2A4
		public List<Human> GetHumans()
		{
			return this.humans;
		}

		// Token: 0x06000F38 RID: 3896 RVA: 0x000610AC File Offset: 0x0005F2AC
		public Male GetMale(int no)
		{
			return this.males[no];
		}

		// Token: 0x06000F39 RID: 3897 RVA: 0x000610BC File Offset: 0x0005F2BC
		public List<Male> GetMales()
		{
			return this.males;
		}

		// Token: 0x06000F3A RID: 3898 RVA: 0x000610C4 File Offset: 0x0005F2C4
		public Female GetFemale(int no)
		{
			return this.females[no];
		}

		// Token: 0x06000F3B RID: 3899 RVA: 0x000610D4 File Offset: 0x0005F2D4
		public List<Female> GetFemales()
		{
			return this.females;
		}

		// Token: 0x04000F90 RID: 3984
		private H_StateManager stateMgr;

		// Token: 0x04000F91 RID: 3985
		public H_InputBase input;

		// Token: 0x04000F92 RID: 3986
		public H_Parameter param;

		// Token: 0x04000F93 RID: 3987
		private List<Male> males = new List<Male>();

		// Token: 0x04000F94 RID: 3988
		private List<Female> females = new List<Female>();

		// Token: 0x04000F95 RID: 3989
		private List<Human> humans = new List<Human>();

		// Token: 0x04000F96 RID: 3990
		private Animator mapIK;

		// Token: 0x04000F97 RID: 3991
		private List<H_VoiceLog> voiceLogs = new List<H_VoiceLog>();

		// Token: 0x04000F9D RID: 3997
		private PosYaw posFloor = new PosYaw();

		// Token: 0x04000F9E RID: 3998
		private PosYaw posWall = new PosYaw();

		// Token: 0x04000F9F RID: 3999
		private PosYaw posChair = new PosYaw();

		// Token: 0x04000FA0 RID: 4000
		private PosYaw posSpecial = new PosYaw();

		// Token: 0x04000FA1 RID: 4001
		private PosYaw posFiveR = new PosYaw();

		// Token: 0x04000FA2 RID: 4002
		private PosYaw posFiveF = new PosYaw();

		// Token: 0x04000FA3 RID: 4003
		private PosYaw posFiveW = new PosYaw();

		// Token: 0x04000FA4 RID: 4004
		public int floorPosNo;

		// Token: 0x04000FA5 RID: 4005
		public int wallPosNo;

		// Token: 0x04000FA6 RID: 4006
		public int chairPosNo;

		// Token: 0x04000FA7 RID: 4007
		public int specialPosNo;

		// Token: 0x04000FA8 RID: 4008
		public int fiveR_PosNo;

		// Token: 0x04000FA9 RID: 4009
		public int fiveF_PosNo;

		// Token: 0x04000FAA RID: 4010
		public int fiveW_PosNo;

		// Token: 0x04000FAB RID: 4011
		private IK_DataList ikDataList;

		// Token: 0x04000FAD RID: 4013
		private List<H_Item> _itemObjects = new List<H_Item>();

		// Token: 0x04000FAE RID: 4014
		private PosYaw lastPosYaw;

		// Token: 0x04000FB0 RID: 4016
		private static string[] _maleAnimNames = new string[]
		{
			"AC_IN_M",
			"AC_IN_N",
			"AC_IN_O",
			"AC_IN_P"
		};
	}
}
